/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package entidades;

import java.io.Serializable;
import java.util.List;
import java.util.Objects;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany;

/**
 *
 * @author Samuel Lehotský <lehotsky at atlas dot sk>
 */
@Entity
public class Medico extends Usuario {
    private static final long serialVersionUID = 1L;  
    @Column(nullable = false)
    private String especialidad;
    @Column(nullable = false)
    private int numeroTrabajador;
    @Column(nullable = false)
    private String departamento;
    
    @OneToMany (mappedBy="medico")
    @JoinColumn(nullable = false)
    private List<Cita> cita;
    
    @OneToMany(mappedBy = "medico")
    @JoinColumn(nullable = false)
    private List<Paciente> pacientes;
    
    @ManyToMany(mappedBy = "medico")
    private List<HistoriaClinica> hClinica;
    
    @ManyToMany(mappedBy = "medico_consultable")
    private List<Paciente> paciente_Consultor;

    public String getEspecialidad() {
        return especialidad;
    }

    public void setEspecialidad(String especialidad) {
        this.especialidad = especialidad;
    }

    public int getNumTrabajador() {
        return numeroTrabajador;
    }

    public void setNumTrabajador(int numTrabajador) {
        this.numeroTrabajador = numTrabajador;
    }

    public String getDepartamento() {
        return departamento;
    }

    public void setDepartamento(String departamento) {
        this.departamento = departamento;
    }

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 59 * hash + Objects.hashCode(this.especialidad);
        hash = 59 * hash + this.numeroTrabajador;
        hash = 59 * hash + Objects.hashCode(this.departamento);
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Medico other = (Medico) obj;
        if (!Objects.equals(this.especialidad, other.especialidad)) {
            return false;
        }
        if (this.numeroTrabajador != other.numeroTrabajador) {
            return false;
        }
        if (!Objects.equals(this.departamento, other.departamento)) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "Medico{" + "especialidad=" + especialidad + ", numTrabajador=" + numeroTrabajador + ", departamento=" + departamento + '}';
    }
    
    
}
